package site.kitcheng.springboottest.domain;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 资源使用情况数据表
 * </p>
 *
 * @author author
 * @since 2025-02-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("resource_usage")
@ApiModel(value="ResourceUsage对象", description="资源使用情况数据表")
public class ResourceUsage implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "唯一标识")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "记录数据的时间")
    @TableField("timestamp")
    private LocalDateTime timestamp;

    @ApiModelProperty(value = "CPU使用率，单位为百分比")
    @TableField("cpu_usage")
    private BigDecimal cpuUsage;

    @ApiModelProperty(value = "GPU使用率，单位为百分比")
    @TableField("gpu_usage")
    private BigDecimal gpuUsage;

    @ApiModelProperty(value = "内存使用率，单位为百分比")
    @TableField("memory_usage")
    private BigDecimal memoryUsage;

    @ApiModelProperty(value = "磁盘使用率，单位为百分比")
    @TableField("disk_usage")
    private BigDecimal diskUsage;

    @ApiModelProperty(value = "系统负载")
    @TableField("system_load")
    private BigDecimal systemLoad;

    @ApiModelProperty(value = "JVM内存使用率，单位为百分比")
    @TableField("jvm_memory_usage")
    private BigDecimal jvmMemoryUsage;

    @ApiModelProperty(value = "网络输入流量，单位字节")
    @TableField("network_in")
    private BigDecimal networkIn;

    @ApiModelProperty(value = "网络输出流量，单位字节")
    @TableField("network_out")
    private BigDecimal networkOut;

    @ApiModelProperty(value = "磁盘读取速度，单位字节/秒")
    @TableField("disk_read_speed")
    private BigDecimal diskReadSpeed;

    @ApiModelProperty(value = "磁盘写入速度，单位字节/秒")
    @TableField("disk_write_speed")
    private BigDecimal diskWriteSpeed;

    @ApiModelProperty(value = "机器唯一标识符（如MAC地址或UUID）")
    @TableField("unique_identifier")
    private String uniqueIdentifier;


}
